package com.soft.mainsite.module.web.cms.service;

import com.soft.mainsite.common.base.BaseService;
import com.soft.mainsite.mybatis.model.TCmsCategory;

import java.util.List;

/**
 * Created by binary on 2017/4/18.
 *
 * @author:
 */
public interface CategoryService extends BaseService<TCmsCategory, Long> {

    /**
     * 根据父id查询栏目列表
     *
     * @param pid
     * @return
     */
    List<TCmsCategory> findCategoryListByPid(Long pid);

    /**
     * 根据站点id查询栏目列表
     *
     * @param siteId
     * @return
     */
    List<TCmsCategory> findCategoryListBySiteId(Integer siteId);

    /**
     * 查询初始化栏目列表
     *
     * @param siteId
     * @param isCommon
     * @return
     */
    List<TCmsCategory> findInitCategoryList(Integer siteId, Integer isCommon);

    /**
     * 根据父id查询栏目列表
     *
     * @param pid
     * @param siteId
     * @return
     */
    List<TCmsCategory> findCategoryListByPid(Long pid, Integer siteId);

    /**
     * 根据父id和是否导航查询栏目列表
     *
     * @param pid
     * @param siteId
     * @param isNav
     * @return
     */
    List<TCmsCategory> findCategoryListByPidAndIsNav(Long pid, Integer siteId, Boolean isNav);

    /**
     * 根据别名查询
     *
     * @param alias
     * @return
     */
    TCmsCategory findByAlias(String alias);

    /**
     * 查询分页大小
     *
     * @param categoryId
     * @return
     */
    Integer findPageSize(Long categoryId);

    /**
     * 根据别名和站点id查询
     *
     * @param alias
     * @param siteId
     * @return
     */
    TCmsCategory findfindByAliasAndSiteId(String alias, Integer siteId);

    /**
     * 查询总数
     *
     * @return
     */
    Integer allCount();

    /**
     * 查询所有全站搜索栏目id
     *
     * @return
     */
    Integer[] getAllowSearchCategoryIds();

    /**
     * 查询站点所有栏目模板
     *
     * @param siteId
     * @return
     */
    List<TCmsCategory> findAllCategoryTplBySiteId(Integer siteId);
}
